﻿;创建按钮
;额外标记：onetime - 显示该选项是否只能使用一次，即使只是查看，也需要在后续参数中设置一个标记，
;如果使用 FIRSTTIME() - 确保为其设置了【不】激活标志，不要让它因查看而被激活。
;-
;status - 显示设置的状态（仅限布尔值），之后以SPLIT形式指定状态（例如："status:禁用:启用"）；需要在后续参数中设置一个标记
;cond - 仅当条件为真时才可访问，需要在后续参数中设置一个标记
@KOJO_OPTION_ITEM("切换同框架剧本", 1, "status:初始版:无个性版", CFLAG:1:998, "cond", , "onetime")
可以同时支持三个关键字：开关状态提示、开关可用条件、以及一次性属性及其内置提示

维护者敲定的几个通用按钮的规范如下：
·切换同框架剧本
-对于采用同样的变量机制的剧本，可以互相切换。如灵梦妖梦剧本
·剧本推荐的开局设定
-大部分剧本采用的选项，更改一套符合剧本设定，而与初始设置不同的属性值
-作为开局设定，一次性属性就是为其设计的，内置提示对其有支持：
	IF ONETIME_STATE
		CALL COLORMESSAGE("一次性选项已使用。需要重置角色或重开游戏才能再次更改。",C_YELLOW,0)
	ELSEIF CONDITION_STATE != 0
		CALL COLORMESSAGE("注意！这是一次性选项！通常意味着这是剧本需要玩家确定下来的开局选项",C_RED,0,1)
	ENDIF
-一个带提示的样例
CALL KOJO_OPTION_ITEM(@"剧本推荐的开局设定", 1, "onetime", !FIRSTTIME("开局设定",1,XX), "status:未采纳:采纳", CFLAG:XX:1001)
    -在开局设定完成之前，该选项一直可选并提示注意
    -设定完成后不可选，并显示是否采纳剧本推荐开局

·%CALLNAME:X%的性经验、重设%CALLNAME:X%的性经验
-大部分剧本采用的选项，开局设定的省略版，只改变性经验
·变更台词颜色
·@"改变%CALLNAME:39%对%CALLNAME:MASTER%的称呼方式%COND_STR(@" 现在是: %MASTERNAME:39%", MASTERNAME:39 != "")%"
-一部分剧本采用的昵称系统

选项不比其他剧本侧的函数，它可能处在主菜单页面，当前TARGET未确定，可能为161、也可能为0。如果需要省略角色编号调用角色变量，则需要一个固定模板：

;※※※※※※※※※※※※※※※※※※※※※※※※※※
;Custom dialogue settings, custom code
;※※※※※※※※※※※※※※※※※※※※※※※※※※
;made it as a way to speed up the update process and separate simple flag updates from various customization options
@KOJO_XXX_OPTION_EXIST_KX
#LOCALSIZE 1
#LOCALSSIZE 1
;note: options start from 1!
@KOJO_XXX_OPTION_KX
#LOCALSIZE 1
#LOCALSSIZE 1
（暂时切换TARGET）
LOCAL = TARGET
TARGET = XX
（可选的调用台词颜色）
CALL SET_KOJO_COLOR

CALL KOJO_OPTION_ITEM(@"剧本推荐的开局设定", 1, "onetime", !FIRSTTIME("开局设定",1,XX), "status:未采纳:采纳", CFLAG:XX:1001)
CALL KOJO_OPTION_ITEM(@"改变%CALLNAME:XX%对%CALLNAME:MASTER%的称呼方式%COND_STR(@" 现在是: %MASTERNAME:XX%", MASTERNAME:XX != "")%")
……
（选项完成后恢复TARGET）
TARGET = LOCAL
RESETCOLOR
;process the input portion
@KOJO_XXX_OPTION_KX_RESULT_1
#LOCALSIZE 1
#LOCALSSIZE 1

@KOJO_XXX_OPTION_KX_RESULT_2
#LOCALSIZE 1
#LOCALSSIZE 1

一个新机能：WALKTHROUGH封装
@KOJO_OPTION_K{ARG:1}_WALKTHROUGH_{ARG}

KOJO_OPTION_KXX_WALKTHROUGH_YY(ARG,ARG:1)
IF

ELSEIF

ELSE

ENDIF

CALL KOJO_OPTION_ITEM(LOCALS, ARG, COND_STR, CONDITION_STATE)

;-------------------------------------------------------------------------------
以下是常用的代码片段

;※※※※※※※※※※※※※※※※※※※※※※※※※※
;Custom dialogue settings, custom code
;※※※※※※※※※※※※※※※※※※※※※※※※※※
;made it as a way to speed up the update process and separate simple flag updates from various customization options
@KOJO_XXX_OPTION_EXIST_KXX
#LOCALSIZE 1
#LOCALSSIZE 1
;note: options start from 1!
@KOJO_XXX_OPTION_KXX
#LOCALSIZE 1
#LOCALSSIZE 1
LOCAL = TARGET
TARGET = XX
CALL SET_KOJO_COLOR

CALL KOJO_OPTION_ITEM(@"剧本推荐的开局设定", 1, "onetime", !FIRSTTIME("开局设定",1,XX), "status:未采纳:采纳", CFLAG:XX:1001)
CALL KOJO_OPTION_ITEM(@"改变%CALLNAME:XX%对%CALLNAME:MASTER%的称呼方式%COND_STR(@" 现在是: %MASTERNAME:XX%", MASTERNAME:XX != "")%")
CALL KOJO_OPTION_ITEM(@"改变成为恋人后%CALLNAME:XX%对%CALLNAME:MASTER%的爱称%COND_STR(@" 现在是: %MASTERNAME:XX%", MASTERNAME:XX != "")%", 3, "cond", TALENT:XX:7)
CALL KOJO_OPTION_ITEM(@"重设%CALLNAME:67%的性经验", 2, "cond", !TALENT:67:処女, "onetime", !FIRSTTIME("KeineVirginSet", 1, 67)) ;custom code, adjusted
CALL KOJO_OPTION_ITEM(@"改变%CALLNAME:127%的胸围  现在是：%GET_TALENTNAME(105, TALENT:127:105)%", 2)

TARGET = LOCAL
RESETCOLOR
;process the input portion
@KOJO_XXX_OPTION_KXX_RESULT_1
#LOCALSIZE 1
#LOCALSSIZE 1
PRINTFORML 要根据推荐，将%CALLNAME:XX%设定为符合该剧本的人设吗？

CALLF FIRSTTIME("开局设定",0,XX)

SIF FIRSTTIME("开局设定",0,XX)
	CALL KOJO_XXX_OPTION_KXX_RESULT_1

改变target

LOCAL = TARGET
TARGET = XX
CALL SET_KOJO_COLOR
TARGET = LOCAL
RESETCOLOR

循环删行
gLineCount = LINECOUNT
LOOP标志
SIF LINECOUNT - gLineCount > 0
	CLEARLINE LINECOUNT - gLineCount

选项

CALL ASK_M("听听作者唠叨",1,"我想打游戏，打游戏，感慨什么的以后再说！",1)

CALL ASK_YN("当然可以","不行")

CALL CHOICE("确定要进行修改吗？", "是", "否")

$WALKTHROUGH $流程提示
KOJO_OPTION_KXX_WALKTHROUGH_YY(ARG)
#DIMS DYNAMIC COND_STR
#DIM DYNAMIC CONDITION_STATE
COND_STR = cond
CONDITION_STATE = 0
LOCALS = 早安服务的设定
LOCAL = 
IF CFLAG:MASTER:初期位置 == CFLAG:30:初期位置 && STRCOUNT(CSTR:30:0, "朝から") && ABL:精液中毒 > 4
	CONDITION_STATE = 1
ELSEIF STRCOUNT(CSTR:30:0, "朝から")
	LOCALS += "（同居时发生）"
	CONDITION_STATE = 1
ELSEIF CFLAG:MASTER:初期位置 == CFLAG:30:初期位置
	LOCALS += "（发生过早安服务后可用）"
ELSE
	LOCALS = 未满足解锁条件 当前提示：
	;未满足
	LOCAL = 1
ENDIF
SIF !LOCAL
	GOTO 满足解锁
;未满足解锁条件
SIF ABL:精液中毒 < 4
	LOCALS += "#让映姬多多记住你的味道 "
SIF !TALENT:恋慕
	LOCALS += "#达到恋慕 "
SIF !TALENT:思慕 || CFLAG:1805
	RETURN
$满足解锁
CALL KOJO_OPTION_ITEM(LOCALS, ARG, COND_STR, CONDITION_STATE)

TALENT:67:処女 = 1
CSTR:67:46 = 还没被任何人进入
	PRINTFORML 要根据推荐，将%CALLNAME:75%设定为符合该剧本的人设吗？
